home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
T-TPUG Old Monthly Disks
/
(c)t7.d64
/
tictacarith.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
6KB
|
220 lines
5 POKE53280,8:POKE53281,8:POKE54277,8
6 PRINT"[147][142] [208][207] [221] [206][183] [160][208][207] [206][205] [206][183] [206][205] [207][205] [221] [208][207][167] [165]
7 [153]" THENFN (null) FN THENFN (null)SQR FN (null)SQR (null)(null) (null) THENFNTHENTANTANFN
8 PRINT" [167][165] [221] [205][175] [167][165] [165][167] [205][175] [165][167] [165][205] [221] [167][165][167] [165]
10 [153],"WRITTEN FOR THE PET
11 PRINT," BY
12 [153]," JO ANN COMITO
15 PRINT,"ADAPTED FOR THE 64
16 [153]," BY
17 PRINT,"STEVEN DARNOLD
18 [153],"P.O. BOX 201
19 PRINT,"ALEXANDRA, NEW ZEALAND";
30 DIMX$(6),O$(6),B$(7),OP$(4,5),AN(9,2)
70 FORI=1TO4000:NEXTI
80 F=0
90 DD$=""
100 RR$=""
110 B$(1)="[176][192][192][192][192][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][192][192][192][192][192][174]"
120 B$(2)="[221]1 [221]2 [221]3 [221]"
130 B$(3)="[221] [221] [221] [221]"
140 B$(4)="[171][192][192][192][192][192][192][192][192][192][192][192][192][219][192][192][192][192][192][192][192][192][192][192][192][192][219][192][192][192][192][192][192][192][192][192][192][192][192][179]"
150 B$(5)="[221]4 [221]5 [221]6 [221]"
160 B$(6)="[221]7 [221]8 [221]9 [221]"
170 B$(7)="[173][192][192][192][192][192][192][192][192][192][192][192][192][177][192][192][192][192][192][192][192][192][192][192][192][192][177][192][192][192][192][192][192][192][192][192][192][192][192][189]"
180 X$(1)="[158] [205][223][146] [169][206][146] "
190 X$(2)=" [223][205][223][169][206][146][169] "
200 X$(3)=" [223][205][206][146][169] "
210 X$(4)=" [169][206][205][223][146] "
220 X$(5)=" [169][206][146][169][223][205][223][146] "
230 X$(6)=" [206][146][169] [223][205][146] "
240 O$(1)="[149] [169] [223][146] "
250 O$(2)=" [169][146][169] [223][223][146] "
260 O$(3)=" [146] [146] "
270 O$(4)=" [146] [146] "
280 O$(5)=" [223][223][146] [169][146][169] "
290 O$(6)=" [223] [146][169] "
300 PRINT"[147] T I C T A C A R I T H"
305 PRINT"THIS GAME IS FOR TWO PEOPLE. THE OBJECT
310 [153]"OF THE GAME IS TO GET THREE BOXES IN A
320 PRINT"ROW (HORIZONTALLY, VERTICALLY OR
330 [153]"DIAGONALLY). YOU WIN A BOX BY SOLVING"
340 [153]"THE PROBLEM IN THE BOX. IF YOU SOLVE "
350 [153]"IT INCORRECTLY, THEN YOUR OPPONENT CAN "
360 [153]"TRY TO WIN THAT BOX.ON"
370 [141]830
380 A$[178]"N"
390 [139][200](A$,1)[178]"N"[175]F[178]5[167]470
400 [140]
410 [129]I[178]1[164]4:[129]J[178]1[164]5:[135]OP$(I,J):[130]J,I
420 [131]A + B," 2"," 19"," 2"," 19",A - B," 15"," 40"," 1"," 14"
430 [131]"A (null) B"," 2"," 10"," 2"," 10","A / B"," 0"," 0"," 0"," 0"
440 [139][200](A$,1)[178]"N"[167]470
450 [141]860@CHANGE RANGE:EF[178]0:[141]1150@CHECK RANGE
460 [139]EF[178]1[167]A$[178]"Y":[140]:[137]410
470 [141]1270@[153] BOXES
480 [129]I[178]1[164]9:AN(I,2)[178]0:[130]I
490 [141]1340@GENERATE PROBS
500 N[178]N[170]1:[139]N[173]2[179][177][181](N[173]2)[167]PL$[178]"(null)"
510 [139]N[173]2[178][181](N[173]2)[167]PL$[178]"O"
520 DD[178]22:RR[178]1:[141]810
530 [153]"PLAYER "PL$" YOUR TURN WHICH BOX? CMDCMD";:[151]204,0
540 [151]198,0:[146]198,1:[161]BO$:BO[178][197](BO$):[151]204,1:[153]" "
560 [139]BO[179][177][181](BO)[176]BO[179]1[176]BO[177]9[167]520
570 [139]AN(BO,2)[179][177]0[167]520
580 F[178]0
590 [141]1480@[137] BOX[171][161] ANS
600 FL[178]0:F[178]F[170]1
610 [139]AN(BO,1)[178]AN[167][141]2060:[141]1630
620 [139]N[178]9[175]FL[178]1[167]750
630 [139]FL[178]1[167]500
640 [139]FL[178]2[167]770
650 DD[178]23:RR[178]17:[141]810
660 [153]"WRONG!":[141]2010:[129]I[178]1[164]250:[130]I
670 [139]F[178]2[167]720
680 [139]PL$[178]"(null)"[167]PL$[178]"O":[137]700
690 [139]PL$[178]"O"[167]PL$[178]"(null)"
700 DD[178]22:RR[178]1:[141]810
710 [153]" PLAYER "PL$" TRY BOX CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD"BO;
720 DD[178]23:RR[178]17:[141]810:[153]" ";
730 [139]F[178]2[167][141]1480:[137]500
740 [137]590
750 [129]I[178]1[164]900:[130]I
760 [153]"LOADIT IS A TIE!"
770 [129]I[178]1[164]2000:[130]I:[153]"LOADPLAY AGAIN?":[151]198,0:[146]198,1:[161]A$
780 [139]A$[178]"Y"[167]N[178]0:F[178]5:[153]"LOAD":[137]380
790 [153]"LOADI HOPE YOU ENJOYED YOUR GAME.
800 END
810 PP$=""+LEFT$(DD$,DD)+LEFT$(RR$,RR)
820 PRINTPP$;:RETURN
830 PRINT"PRESS[149][167]SHIFT[146][145][157][157][157][157][157][164][164][164][164][164][165]TO BEGIN."
840 WAIT653,1,1:WAIT653,1
850 RETURN
860 PRINT"[147]BELOW IS A LIST OF THE OPERATIONS AND "
870 PRINT"THE CURRENT RANGES OF THE NUMBERS."
880 PRINT"YOU MAY TYPE IN THE NEW RANGE TO THE "
890 PRINT"RIGHT OF EACH LINE. IF YOU WISH TO "
900 PRINT"LEAVE A LINE UNCHANGED, JUST PRESS THE"
910 PRINT"RETURN KEY. YOU MAY ELIMINATE AN OP-"
920 PRINT"ERATION BY SETTING THE UPPER AND LOWER"
930 PRINT"LIMITS TO 0."
940 PRINT" [146][221]CURRENT[146][221]CURRENT[146][221] NEW [146][221] NEW [146][221]"
950 PRINT"PROB [146][221]A-RANGE[146][221]B-RANGE[146][221]A-RANGE[146][221]B-RANGE[146][221]"
960 PRINT"TYPE [146][221] LO[221] HI[146][221] LO[221] HI[146][221] LO[221] HI[146][221] LO[221] HI[146][221]"
970 PRINT"[163][163][163][163][163][221]";:FORI=1TO8:PRINT"[163][163][163][221]";:NEXTI:PRINT
980 FORI=1TO4
990 FORJ=1TO5:PRINTOP$(I,J);"[221]";:NEXTJ
1000 FORJ=1TO4:PRINT" [221]";:NEXTJ:PRINT
1010 PRINT" [221]";:FORJ=1TO8:PRINT" [221]";:NEXTJ:PRINT
1020 NEXTI
1030 FORDD=13TO19STEP2
1040 FORRR=22TO34STEP4
1050 T=1:T1$=""
1060 GOSUB810
1070 PRINT"?";
1080 GETT$:IFT$=""THEN1080
1090 IFT$=CHR$(13)ANDT=1THENPRINT"[157] ";:NEXTDD:RETURN
1100 IFT$=CHR$(13)THENPRINT"[157] ";:OP$((DD-11)/2,(RR-18)/4+1)=T1$:NEXTRR:NEXTDD:RETURN
1110 IFT$=CHR$(20)THENPRINT"[157] [157][157]?";:GOTO1080
1120 PRINT"[157]";T$;
1130 IFT$<"0"ORT$>"9"THENPRINT"[157] [157]?";:GOTO1080
1140 T1$=T1$+T$:T=T+1:GOTO1070
1150 IFOP$(4,4)="0"THENOP$(4,4)="1"
1160 FORI=1TO4:FORJ=2TO4STEP2
1170 V1=VAL(OP$(I,J)):V2=VAL(OP$(I,J+1))
1180 IFV1>V2THENEF=1:PRINT:PRINT"LOW LIMIT MUST BE LESS THAN UPPER LIMIT":GOSUB830:RETURN
1190 IFV1<-99ORV1>100ORV2<-99ORV2>100THENEF=1:GOTO1210
1200 NEXTJ,I:RETURN
1210 PRINT:PRINT"NUMBERS MUST BE BETWEEN -99 AND 100":GOSUB830:RETURN
1220 REM**PRINT OUT O**
1230 DD=DO:RR=RO:GOSUB810
1240 FORI=1TO6:PRINTO$(I):DD=DD+1:GOSUB810:NEXTI:RETURN
1250 DD=DX:RR=RX:GOSUB810
1260 FORI=1TO6:PRINTX$(I):DD=DD+1:GOSUB810:NEXTI:RETURN
1270 PRINT"[147]";B$(1);B$(2);
1280 FORI=1TO5:PRINTB$(3);:NEXT
1290 PRINTB$(4);B$(5);
1300 FORI=1TO5:PRINTB$(3);:NEXT
1310 PRINTB$(4);B$(6);
1320 FORI=1TO5:PRINTB$(3);:NEXT
1330 PRINTB$(7);:RETURN
1340 FORI=1TO9
1350 R%=RND(1)*4+1
1360 LA=VAL(OP$(R%,2)):UA=VAL(OP$(R%,3)):LB=VAL(OP$(R%,4)):UB=VAL(OP$(R%,5))
1370 IFLA=UAORLB=UBTHEN1350
1380 RA%=RND(1)*(UA-LA)+LA:RB%=RND(1)*(UB-LB)+LB+.5
1390 IFR%=4THEN1430
1400 IFR%=1THENAN(I,1)=RA%+RB%
1410 IFR%=2THENAN(I,1)=RA%-RB%
1420 IFR%=3THENAN(I,1)=RA%*RB%
1430 IFR%=4THENAN(I,1)=INT(RND(1)*(SQR(UA)-LA)+LA):RA%=AN(I,1)*RB%
1440 DD=INT((I-.1)/3)*7+2
1450 RR=((I+2)-((INT((I+2)/3))*3))*13+2
1460 GOSUB810
1470 PRINTRA%;MID$(OP$(R%,1),3,1);RB%;"=":NEXTI:RETURN
1480 DD=INT((BO-.1)/3)*7+6
1490 RR=((BO+2)-((INT((BO+2)/3))*3))*13+2
1500 GOSUB810
1510 IFF=2THENPRINT" ":RETURN
1520 PRINT"ANS= [157][157][157][157][157]";
1530 T1$=""
1540 PRINT"?";
1550 GETT$:IFT$=""THEN1550
1555 IFT1$=""THENIFT$=CHR$(13)ORT$=CHR$(20)THEN1550
1560 IFT$=CHR$(13)THENPRINT"[157] ";:GOTO1620
1570 IFT$=CHR$(20)THENPRINT"[157] [157][157]?";:T1$=LEFT$(T1$,LEN(T1$)-1):GOTO1550
1580 PRINT"[157]";T$;
1590 IFT$="."ORT$="-"THEN1610
1600 IFT$<"0"ORT$>"9"THENPRINT"[157] [157]?";:GOTO1550
1610 T1$=T1$+T$:GOTO1540
1620 AN=VAL(T1$):RETURN
1630 DD=INT((BO-.1)/3)*7+1
1640 RR=((BO+2)-((INT((BO+2)/3))*3))*13+2
1650 IFPL$="[214]"THENAN(BO,2)=1:GOTO1720
1660 AN(BO,2)=-1
1670 GOSUB810
1680 FORI=1TO6:PRINTO$(I):DD=DD+1:GOSUB810:NEXTI
1690 GOSUB1770@CHECK"[215]"WIN
1700 IFFL=2THENRETURN
1710 FL=1:RETURN
1720 GOSUB810
1730 FORI=1TO6:PRINTX$(I):DD=DD+1:GOSUB810:NEXTI
1740 GOSUB1770@CHECK"[214]"WIN
1750 IFFL=2THENRETURN
1760 FL=1:RETURN
1770 IFAN(1,2)=AN(5,2)ANDAN(5,2)=AN(9,2)ANDAN(1,2)<>0THEN1860
1780 IFAN(3,2)=AN(5,2)ANDAN(5,2)=AN(7,2)ANDAN(5,2)<>0THEN1860
1790 IFAN(1,2)=AN(4,2)ANDAN(4,2)=AN(7,2)ANDAN(1,2)<>0THEN1860
1800 IFAN(2,2)=AN(5,2)ANDAN(5,2)=AN(8,2)ANDAN(2,2)<>0THEN1860
1810 IFAN(3,2)=AN(6,2)ANDAN(6,2)=AN(9,2)ANDAN(3,2)<>0THEN1860
1820 IFAN(1,2)=AN(2,2)ANDAN(2,2)=AN(3,2)ANDAN(1,2)<>0THEN1860
1830 IFAN(4,2)=AN(5,2)ANDAN(5,2)=AN(6,2)ANDAN(4,2)<>0THEN1860
1840 IFAN(7,2)=AN(8,2)ANDAN(8,2)=AN(9,2)ANDAN(7,2)<>0THEN1860
1850 RETURN
1860 FORI=1TO250:NEXTI
1870 FL=2
1880 PRINT"[147]"
1890 DD=9:RR=17:GOSUB810
1900 IFPL$="[214]"THEN1920
1910 FORI=1TO6:PRINTO$(I):DD=DD+1:GOSUB810:NEXT:PRINT"YOU WIN!":GOSUB1930:RETURN
1920 FORI=1TO6:PRINTX$(I):DD=DD+1:GOSUB810:NEXT:PRINT"YOU WIN!":GOSUB1930:RETURN
1930 P=54273:POKE54296,15
1940 POKE54276,33
1950 FORJ=1TO5
1960 POKE53265,11:FORK=1TO50:NEXTK:POKE53265,27
1970 FORI=250TO140STEP-5:POKE54276,32:POKE54276,33:POKEP,I:NEXTI
1980 NEXTJ
1990 POKE54276,32:POKE54296,0
2000 RETURN
2010 P=54273:POKE54296,15
2020 POKE54276,33
2030 FORI=1TO15:FORJ=1TO3
2036 POKE54276,32:POKE54276,33:POKEP,J*40-25:NEXT:NEXT
2040 POKE54276,32:POKE54296,0
2050 RETURN
2060 P=54273:POKE54296,15:FORJ=0TO3
2070 POKE54276,33
2080 POKEP,125+J*42:FORI=1TO50:NEXTI
2090 POKE54276,32:FORI=1TO50:NEXT:NEXT:POKE54296,0
2100 RETURN